Hệ thống quản lý phòng khám trực tuyến bằng PHP

1 <?php
2     function detect_config($redirect_to_setup =
true){
3         $config_exists = is_readable(dirname(__FILE__) .
'/config.php');
4
5         
if(!$config_exists && $redirect_to_setup){
6             $url = (request_outside_admin_folder() ?
'' : '../') . 'setup.php';
7
8             
if(!headers_sent()){
9                 @header(
"Location: $url");
10             }
else{
11                 echo
'<META HTTP-EQUIV="Refresh" CONTENT="0;url=' . $url . '">' .
12                      
'<script>window.location = "' . $url . '";</script>';
13             }
14             exit;
15         }
16
17         
return $config_exists;
18     }
19
20     function migrate_config(){
21         $curr_dir = dirname(__FILE__);
22         
if(!is_readable($curr_dir . '/admin/incConfig.php') || !detect_config(false)){
23             
return false; // nothing to migrate
24         }
25
26         @include($curr_dir .
'/admin/incConfig.php');
27         @include($curr_dir .
'/config.php');
28
29         $config_array = array(
30             
'dbServer' => $dbServer,
31             
'dbUsername' => $dbUsername,
32             
'dbPassword' => $dbPassword,
33             
'dbDatabase' => $dbDatabase,
34             
'adminConfig' => $adminConfig
35         );
36
37         
if(save_config($config_array)){
38             @rename($curr_dir .
'/admin/incConfig.php', $curr_dir . '/admin/incConfig.bak.php');
39             @unlink($curr_dir .
'/admin/incConfig.php');
40             
return true;
41         }
42
43         
return false;
44     }
45
46     function save_config($config_array = array()){
47         $curr_dir = dirname(__FILE__);
48         
if(!count($config_array) || !count($config_array['adminConfig'])) return array('error' => 'Invalid config array');
49
50         $new_admin_config =
'';
51         
foreach($config_array['adminConfig'] as $admin_var => $admin_val){
52             $new_admin_config .=
"\t\t'" . addslashes($admin_var) . "' => \"" . str_replace(array("\n", "\r", '"'), array('\n', '\r', '\"'), $admin_val) . "\",\n";
53         }
54         $new_admin_config = substr($new_admin_config,
0, -2) . "\n";
55
56         $new_config =
"<?php\n" .
57             
"\t\$dbServer = '" . addslashes($config_array['dbServer']) . "';\n" .
58             
"\t\$dbUsername = '" . addslashes($config_array['dbUsername']) . "';\n" .
59             
"\t\$dbPassword = '" . addslashes($config_array['dbPassword']) . "';\n" .
60             
"\t\$dbDatabase = '" . addslashes($config_array['dbDatabase']) . "';\n" .
61
62             
"\n\t\$adminConfig = array(\n" .
63                 $new_admin_config .
64             
"\t);";
65
66         
if(detect_config(false)){
67             
// attempt to back up config
68             @copy($curr_dir .
'/config.php', $curr_dir . '/config.bak.php');
69         }
70
71         
if(!$fp = @fopen($curr_dir . '/config.php', 'w')) return array('error' => 'Unable to write to config file', 'config' => $new_config);
72         fwrite($fp, $new_config);
73         fclose($fp);
74
75         
return true;
76     }
77
78     function request_outside_admin_folder(){
79         
return (realpath(dirname(__FILE__)) == realpath(dirname($_SERVER['SCRIPT_FILENAME'])) ? true : false);
80     }
81
82     function config($
var, $force_reload = false){
83         
static $config;
84
85         $default_config = array(
86             
'dbServer' => '',
87             
'dbUsername' => '',
88             
'dbPassword' => '',
89             
'dbDatabase' => '',
90
91             
'adminConfig' => array(
92                 
'adminUsername' => '',
93                 
'adminPassword' => '',
94                 
'notifyAdminNewMembers' => false,
95                 
'defaultSignUp' => 1,
96                 
'anonymousGroup' => 'anonymous',
97                 
'anonymousMember' => 'guest',
98                 
'groupsPerPage' => 10,
99                 
'membersPerPage' => 10,
100                 
'recordsPerPage' => 10,
101                 
'custom1' => 'Full Name',
102                 
'custom2' => 'Address',
103                 
'custom3' => 'City',
104                 
'custom4' => 'State',
105                 
'MySQLDateFormat' => '%m/%d/%Y',
106                 
'PHPDateFormat' => 'n/j/Y',
107                 
'PHPDateTimeFormat' => 'm/d/Y, h:i a',
108                 
'senderName' => 'Membership management',
109                 
'senderEmail' => '',
110                 
'approvalSubject' => 'Your membership is now approved',
111                 
'approvalMessage' => "Dear member,\n\nYour membership is now approved by the admin. You can log in to your account here:\nhttp://{$_SERVER['HTTP_HOST']}" . rtrim(dirname($_SERVER['PHP_SELF']), '/\\') . "\n\nRegards,\nAdmin",
112                 
'hide_twitter_feed' => false,
113                 
'maintenance_mode_message' => '<b>Our website is currently down for maintenance</b><br>\r\nWe expect to be back in a couple hours. Thanks for your patience.',
114                 
'mail_function' => 'mail',
115                 
'smtp_server' => '',
116                 
'smtp_encryption' => '',
117                 
'smtp_port' => 25,
118                 
'smtp_user' => '',
119                 
'smtp_pass' => ''
120             )
121         );
122
123         
if(!isset($config) || $force_reload){
124             @include(dirname(__FILE__) .
'/config.php');
125
126             $config[
'dbServer'] = $dbServer;
127             $config[
'dbDatabase'] = $dbDatabase;
128             $config[
'dbPassword'] = $dbPassword;
129             $config[
'dbUsername'] = $dbUsername;
130             $config[
'adminConfig'] = $adminConfig;
131         }
132
133         
return (isset($config[$var]) && $config[$var] ? $config[$var] : $default_config[$var]);
134     }


Gõ tìm kiếm nhanh...